package jgrouse.jgdoc.api;

import java.util.List;

import jgrouse.jgdoc.JGDocException;
import jgrouse.jgdoc.TokenType;
import jgrouse.jgdoc.Vocabulary;

public interface IComment
{

	public Vocabulary getCommentType();

	public IContent getContent();
	public void setContent(IContent pContent);

	public IContent getSummary();
	public void setSummary(IContent pContent);

	public String getSrcUrl();
	
	public List<ILink> collectLinks(List<ILink> pList);
	
	public String getFile();
	public int getLine();
	public String getName();
	public void setName(String pName) throws JGDocException;
	public List<ICommentTag> getTagsForVocabulary(Vocabulary v);
	public void dropTagsForVocabulary(Vocabulary v);
	public TokenType getTokenType();
	public void addCommentTag(ICommentTag tag) throws JGDocException;
	public IContent getTypeLink();
	public String getModifiers();
	public boolean hasModifer(String pModifier);
	public List<IParamSet> getParamSets();
	public ICommentTag getReturnsTag();
	public List<String> getTagNames();
	public List<ICommentTag> get(String tagName);
	public void resetPrivateModifier(String pPrivatePrefix);
	
	public void cleanupPrivates();
}